Micron Document
🎖️GitЯра🎖️

Node / meshcore / MeshCore / files / src / helpers / ui / ST7789LCDDisplay.cpp

Displaying Raw • Download

src/helpers/ui/ST7789LCDDisplay.cpp 5732b2edd8563281ef7d344cd6517f969ca160ab (5732b2ed) Text, 4.10 KB

Tff7b72#Tff7b72include T8b949e"ST7789LCDDisplay.h"

Tff7b72#Tff7b72ifndef PIN_TFT_MISO
Tff7b72#Tff7b72define PIN_TFT_MISO -1
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef DISPLAY_ROTATION
Tff7b72#Tff7b72define DISPLAY_ROTATION 3
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef DISPLAY_SCALE_X
Tff7b72#Tff7b72define DISPLAY_SCALE_X 2.5f T8b949e// 320 / 128
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef DISPLAY_SCALE_Y
Tff7b72#Tff7b72define DISPLAY_SCALE_Y 3.75f T8b949e// 240 / 64
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72define DISPLAY_WIDTH 240
Tff7b72#Tff7b72define DISPLAY_HEIGHT 320

Tffa657bool Td2a8ffST7789LCDDisplay::i2c_probeTb4b4b4(Te6edf3TwoWireTff7b72& Te6edf3wireTb4b4b4, Tffa657uint8_t Te6edf3addrTb4b4b4) Tb4b4b4{
Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}

T8b949e// Color scheme
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3window_bkg Tff7b72= Te6edf3ST77XX_WHITETb4b4b4;
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3title_bkg Tff7b72= Te6edf3ST77XX_BLUETb4b4b4;
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3title_txt Tff7b72= Te6edf3ST77XX_WHITETb4b4b4;
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3primary_txt Tff7b72= Te6edf3ST77XX_BLACKTb4b4b4;
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3secondary_txt Tff7b72= Tb4b4b4(T79c0ff18 Tff7b72<Tff7b72< T79c0ff11Tb4b4b4) Tff7b72| Tb4b4b4(T79c0ff36 Tff7b72<Tff7b72< T79c0ff5Tb4b4b4) Tff7b72| T79c0ff18Tb4b4b4; T8b949e// mid-gray
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3warning_txt Tff7b72= Te6edf3ST77XX_ORANGETb4b4b4;
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3popup_bkg Tff7b72= Te6edf3ST77XX_CYANTb4b4b4;
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3popup_txt Tff7b72= Te6edf3ST77XX_BLACKTb4b4b4;
Te6edf3ColorVal Te6edf3UIColorTff7b72:Tff7b72:Te6edf3corp_blue Tff7b72= T79c0ff0x001ATb4b4b4;

Tffa657bool Td2a8ffST7789LCDDisplay::beginTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3_isOnTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3_peripher_powerTb4b4b4) Te6edf3_peripher_powerTff7b72-Tff7b72>Te6edf3claimTb4b4b4(Tb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3PIN_TFT_LEDA_CTL Tff7b72!Tff7b72= T79c0ff-1Tb4b4b4) Tb4b4b4{
Te6edf3pinModeTb4b4b4(Te6edf3PIN_TFT_LEDA_CTLTb4b4b4, Te6edf3OUTPUTTb4b4b4)Tb4b4b4;
Te6edf3digitalWriteTb4b4b4(Te6edf3PIN_TFT_LEDA_CTLTb4b4b4, Te6edf3HIGHTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e// Im not sure if this is just a t-deck problem or not, if your display is slow try this.
Tff7b72#Tff7b72if defined(LILYGO_TDECK) || defined(HELTEC_LORA_V4_TFT) || defined(HELTEC_V4_R8_TFT)
Te6edf3displaySPITb4b4b4.Te6edf3beginTb4b4b4(Te6edf3PIN_TFT_SCLTb4b4b4, Te6edf3PIN_TFT_MISOTb4b4b4, Te6edf3PIN_TFT_SDATb4b4b4, Te6edf3PIN_TFT_CSTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif

Te6edf3displayTb4b4b4.Te6edf3initTb4b4b4(Te6edf3DISPLAY_WIDTHTb4b4b4, Te6edf3DISPLAY_HEIGHTTb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3setRotationTb4b4b4(Te6edf3DISPLAY_ROTATIONTb4b4b4)Tb4b4b4;

Te6edf3displayTb4b4b4.Te6edf3setSPISpeedTb4b4b4(T79c0ff40e6Tb4b4b4)Tb4b4b4;

Te6edf3displayTb4b4b4.Te6edf3fillScreenTb4b4b4(Te6edf3ST77XX_BLACKTb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3setTextColorTb4b4b4(Te6edf3ST77XX_WHITETb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3setTextSizeTb4b4b4(T79c0ff2 Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3cp437Tb4b4b4(Tffa657trueTb4b4b4)Tb4b4b4; T8b949e// Use full 256 char 'Code Page 437' font
Te6edf3_isOn Tff7b72= Tffa657trueTb4b4b4;
Tb4b4b4}

Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::turnOnTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3ST7789LCDDisplayTff7b72:Tff7b72:Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::turnOffTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3_isOnTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3PIN_TFT_LEDA_CTL Tff7b72!Tff7b72= T79c0ff-1Tb4b4b4) Tb4b4b4{
Te6edf3digitalWriteTb4b4b4(Te6edf3PIN_TFT_LEDA_CTLTb4b4b4, Te6edf3HIGHTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3PIN_TFT_RST Tff7b72!Tff7b72= T79c0ff-1Tb4b4b4) Tb4b4b4{
Te6edf3digitalWriteTb4b4b4(Te6edf3PIN_TFT_RSTTb4b4b4, Te6edf3LOWTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3PIN_TFT_LEDA_CTL Tff7b72!Tff7b72= T79c0ff-1Tb4b4b4) Tb4b4b4{
Te6edf3digitalWriteTb4b4b4(Te6edf3PIN_TFT_LEDA_CTLTb4b4b4, Te6edf3LOWTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3_isOn Tff7b72= Tffa657falseTb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3_peripher_powerTb4b4b4) Te6edf3_peripher_powerTff7b72-Tff7b72>Te6edf3releaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::clearTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3fillScreenTb4b4b4(Te6edf3ST77XX_BLACKTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::startFrameTb4b4b4(Te6edf3ColorVal Te6edf3bkgTb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3fillScreenTb4b4b4(Te6edf3bkgTb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3setTextColorTb4b4b4(Te6edf3_color Tff7b72= Te6edf3UIColorTff7b72:Tff7b72:Te6edf3primary_txtTb4b4b4)Tb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3setTextSizeTb4b4b4(T79c0ff1 Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4)Tb4b4b4; T8b949e// This one affects size of Please wait... message
Te6edf3displayTb4b4b4.Te6edf3cp437Tb4b4b4(Tffa657trueTb4b4b4)Tb4b4b4; T8b949e// Use full 256 char 'Code Page 437' font
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::setTextSizeTb4b4b4(Tffa657int Te6edf3szTb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3setTextSizeTb4b4b4(Te6edf3sz Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::setColorTb4b4b4(Te6edf3ColorVal Te6edf3cTb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3setTextColorTb4b4b4(Te6edf3_color Tff7b72= Te6edf3cTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::setCursorTb4b4b4(Tffa657int Te6edf3xTb4b4b4, Tffa657int Te6edf3yTb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3setCursorTb4b4b4(Te6edf3x Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4, Te6edf3y Tff7b72* Te6edf3DISPLAY_SCALE_YTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::printTb4b4b4(Tff7b72const Tffa657charTff7b72* Te6edf3strTb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3printTb4b4b4(Te6edf3strTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::fillRectTb4b4b4(Tffa657int Te6edf3xTb4b4b4, Tffa657int Te6edf3yTb4b4b4, Tffa657int Te6edf3wTb4b4b4, Tffa657int Te6edf3hTb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3fillRectTb4b4b4(Te6edf3x Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4, Te6edf3y Tff7b72* Te6edf3DISPLAY_SCALE_YTb4b4b4, Te6edf3w Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4, Te6edf3h Tff7b72* Te6edf3DISPLAY_SCALE_YTb4b4b4, Te6edf3_colorTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::drawRectTb4b4b4(Tffa657int Te6edf3xTb4b4b4, Tffa657int Te6edf3yTb4b4b4, Tffa657int Te6edf3wTb4b4b4, Tffa657int Te6edf3hTb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3drawRectTb4b4b4(Te6edf3x Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4, Te6edf3y Tff7b72* Te6edf3DISPLAY_SCALE_YTb4b4b4, Te6edf3w Tff7b72* Te6edf3DISPLAY_SCALE_XTb4b4b4, Te6edf3h Tff7b72* Te6edf3DISPLAY_SCALE_YTb4b4b4, Te6edf3_colorTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::drawXbmTb4b4b4(Tffa657int Te6edf3xTb4b4b4, Tffa657int Te6edf3yTb4b4b4, Tff7b72const Tffa657uint8_tTff7b72* Te6edf3bitsTb4b4b4, Tffa657int Te6edf3wTb4b4b4, Tffa657int Te6edf3hTb4b4b4) Tb4b4b4{
Tffa657uint8_t Te6edf3byteWidth Tff7b72= Tb4b4b4(Te6edf3w Tff7b72+ T79c0ff7Tb4b4b4) Tff7b72/ T79c0ff8Tb4b4b4;

Tff7b72for Tb4b4b4(Tffa657int Te6edf3j Tff7b72= T79c0ff0Tb4b4b4; Te6edf3j Tff7b72< Te6edf3hTb4b4b4; Te6edf3jTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tffa657int Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3wTb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Tffa657uint8_t Tffa657byte Tff7b72= Te6edf3bitsTb4b4b4[Te6edf3j Tff7b72* Te6edf3byteWidth Tff7b72+ Te6edf3i Tff7b72/ T79c0ff8Tb4b4b4]Tb4b4b4;
Tffa657bool Te6edf3pixelOn Tff7b72= Tffa657byte Tff7b72& Tb4b4b4(T79c0ff0x80 Tff7b72>Tff7b72> Tb4b4b4(Te6edf3i Tff7b72& T79c0ff7Tb4b4b4)Tb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3pixelOnTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tffa657int Te6edf3dy Tff7b72= T79c0ff0Tb4b4b4; Te6edf3dy Tff7b72< Te6edf3DISPLAY_SCALE_XTb4b4b4; Te6edf3dyTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tffa657int Te6edf3dx Tff7b72= T79c0ff0Tb4b4b4; Te6edf3dx Tff7b72< Te6edf3DISPLAY_SCALE_XTb4b4b4; Te6edf3dxTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Te6edf3displayTb4b4b4.Te6edf3drawPixelTb4b4b4(Te6edf3x Tff7b72* Te6edf3DISPLAY_SCALE_X Tff7b72+ Te6edf3i Tff7b72* Te6edf3DISPLAY_SCALE_X Tff7b72+ Te6edf3dxTb4b4b4, Te6edf3y Tff7b72* Te6edf3DISPLAY_SCALE_Y Tff7b72+ Te6edf3j Tff7b72* Te6edf3DISPLAY_SCALE_X Tff7b72+ Te6edf3dyTb4b4b4, Te6edf3_colorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Tffa657uint16_t Td2a8ffST7789LCDDisplay::getTextWidthTb4b4b4(Tff7b72const Tffa657charTff7b72* Te6edf3strTb4b4b4) Tb4b4b4{
Tffa657int16_t Te6edf3x1Tb4b4b4, Te6edf3y1Tb4b4b4;
Tffa657uint16_t Te6edf3wTb4b4b4, Te6edf3hTb4b4b4;
Te6edf3displayTb4b4b4.Te6edf3getTextBoundsTb4b4b4(Te6edf3strTb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, Tff7b72&Te6edf3x1Tb4b4b4, Tff7b72&Te6edf3y1Tb4b4b4, Tff7b72&Te6edf3wTb4b4b4, Tff7b72&Te6edf3hTb4b4b4)Tb4b4b4;

Tff7b72return Te6edf3w Tff7b72/ Te6edf3DISPLAY_SCALE_XTb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffST7789LCDDisplay::endFrameTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// display.display();
Tb4b4b4}

Served by rngit 1.5.2 - Generated in 0.42s